package jdk6.console;

import java.io.Console;

/**
 * Description: jdk1.6新特性：Console类（Console）
 * JDK6中提供了java.io.Console类专用来访问基于字符的控制台设备. 
 * 你的程序如果要与Windows下的cmd或者Linux下的Terminal交互,就可以用Console类代劳. 
 * 但我们不总是能得到可用的Console, 一个JVM是否有可用的Console依赖于底层平台和JVM如何被调用.
 * 如果JVM是在交互式命令行(比如Windows的cmd)中启动的,并且输入输出没有重定向到另外的地方,那么就可以得到一个可用的Console实例
 * 
 * 个人认为：不是很有用，还感觉不到使用的地方
 * @author Kwum
 * @date 2017年6月17日 下午4:51:09
 * @version 1.0
 */

public class Run {

    public static void main(String[] args) {
        // 获得Console实例
        Console console = System.console();
        // 判断console是否可用
        if (console != null) {
            // 读取整行字符
            String user = new String(console.readLine("Enter user:"));
            // 读取密码,密码输入时不会显示
            String pwd = new String(console.readPassword("Enter passowrd:"));
            console.printf("User is:" + user + "\n");
            console.printf("Password is:" + pwd + "\n");
        } else {
            System.out.println("Console is unavailable");
        }
    }

}
